<?php
 Include ("./garennes.cfg") ;
 Include ("./init.php") ;

 $separateur = ";" ;
 
 Function fabrique_csv ($nom_table)
  {
   Global $id_sql, $separateur ;
   $resultat = SQL_commande ("SELECT * FROM ".$nom_table, $id_sql) ;
   $total_t = SQL_nbr_champs ($resultat) ;
   $chaine = "" ;
   While ($ligne = SQL_ligne_suivante ($resultat))
    {
     $chaine .= "\"".$ligne [0]."\"" ;
     For ($i = 1 ; $i < $total_t ; $i++)
      {
       $chaine .= $separateur."\"".Str_Replace (Chr (13), "\n", $ligne [$i])."\"" ;
      }
     $chaine .= "\n" ;
    }
   Return $chaine ;
  }
 
 Function sauvegarde ($num, $qui, $ou, $nom, $c, $t)
  {
   Global $id_sql, $ext_texte ;
   $taille = 0 ;
   For ($i = 0 ; $i < SizeOf ($qui) ; $i++)
    {
     $fichier = FOpen ($ou."/".$qui [$i].$ext_texte, "w") ;
      FPuts ($fichier, fabrique_csv ($qui [$i])) ;
     FClose ($fichier) ;
     $taille += FileSize ($ou."/".$qui [$i].$ext_texte) ;
     SQL_commande ("INSERT INTO sauvegardes_fichiers (numero, nom, extension, taille)
                    VALUES ('".$num."', '".$qui [$i]."', '".$ext_texte."', '".FileSize ($ou."/".$qui [$i].$ext_texte)."')", $id_sql) ;
    }
   If ($c)
    {
     Exec ("cd ".$ou."; tar cf ./".$nom.".tar ./*".$ext_texte) ;
     Exec ("cd ".$ou."; gzip ./".$nom.".tar") ;
     Exec ("rm --force ".$ou."/"."*".$ext_texte) ;
     $nom .= ".tar.gz" ;
     $efface = 0 ;
     $taille = FileSize ($ou."/".$nom) ;
     SQL_commande ("UPDATE sauvegardes SET nom_fichier='".$nom."' WHERE id_sauvegarde='".$num."' LIMIT 1", $id_sql) ;
    }
   ElseIf ($t)
    {
     Exec ("cd ".$ou."; tar cf ./".$nom.".tar ./*".$ext_texte) ;
     $nom .= ".tar" ;
     $efface = 1 ;
    }
   SQL_commande ("UPDATE sauvegardes SET taille='".$taille."' WHERE id_sauvegarde='".$num."' LIMIT 1", $id_sql) ;
   If ($t) { transmettre ($nom, $ou) ; }
   If ($efface) { Exec ("rm --force ".$ou."/".$nom) ; }
  }
 
 $d1 = Date ("Y-m-d") ;
 $d2 = Date ("H-i-s") ;
 $nom_rep = "s".$d1."_".$d2 ;
 Exec ("mkdir ".$repertoire_sauvegarde."/".$nom_rep) ;
 If ($compresse) { $c = 1 ; } Else { $c = 0 ; }
 If ($transmis) { $t = 1 ; } Else { $t = 0 ; }
 $resultats = SQL_commande ("INSERT INTO sauvegardes (nom_repertoire, date, type, compresse, transmis, separateur)
                             VALUES ('".$nom_rep."', '".$d1." ".$d2."', 'Toutes', '".$c."', '".$t."', '^".$separateur."^')", $id_sql) ;
 $resultats = SQL_commande ("SELECT id_sauvegarde FROM sauvegardes WHERE date='".$d1." ".$d2."' LIMIT 1", $id_sql) ;
 $numero = SQL_ligne_suivante ($resultats) ;
 $resultats = SQL_commande ("SHOW TABLES", $id_sql) ;
 For ($i = 0 ; $i < SQL_nbr_lignes ($resultats) ; $i++)
  {
   $ligne = SQL_ligne_suivante ($resultats) ;
   $f [$i] = $ligne [0] ;
  }
 sauvegarde ($numero [0], $f, $repertoire_sauvegarde."/".$nom_rep, $sql_base, $compresse, $transmis) ;
?>